package com.young.design.pattern.proxy.cglib;

import net.sf.cglib.proxy.CallbackFilter;

import java.lang.reflect.Method;

/**
 * @ClassName : SimpleServiceFilter
 * @Author : hyy
 * @Date: 2020-03-19
 */
public class SimpleServiceFilter implements CallbackFilter {
    /**
     * 使用callbackFilter 指定方法通过什么样的拦截器
     * 该方法的返回值是对应了
     * nhancer.setCallbacks(new Callback[]{SimpleServiceMethodInterceptor, NoOp.INSTANCE});中 数组的下标
     * 如返回的是1 就是表示使用NoOp.INSTANCE 拦截，如果是0 就表示使用SimpleServiceMethodInterceptor 拦截
     * @param method
     * @return
     */
    @Override
    public int accept(Method method) {
        if ("query".equalsIgnoreCase(method.getName())){
            return 1;
        }else{
            return 0;
        }

    }
}
